'''
pygeom -- Python Geometric Engine
cls -- Class Management

Manages classes used by PyGeom. Classes in PyGeom may or may
not tend to the typical inheritance scheme, but the use of
this class system not only simplifies testing certain attributes
and protocols, but makes it so that inheritance need not be obeyed
(which may, on rare occasion, need to occur).

ge.GE supports the class management protocol. Property Class gets
the _cls attribute, expected to be set on __init__.

cls supports Check (which checks for a class) and Raise (which
ensures that a class is obeyed).
'''

NOTSET=0
POINT=1
LINE=2
PLANE=3

def Check(cl, *args):
    for i in args:
        if i in cl:
            return True
    return False

def Raise(cl, *args):
    if not Check(cl, *args):
        raise TypeError('Illegal GE type')
